package com.by.mapper;

import com.by.bean.Dept;
import com.by.bean.DeptTree;
import com.by.common.crud.BaseMapper;
import com.by.query.DeptQuery;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

@Mapper
public interface DeptMapper extends BaseMapper<Dept> {


    /**
     *   根据父id查询子部门
     * @return
     */
    List<DeptTree>  queryTree(int parentId);


    /**
     * 根据条件查询子部门
     * @param query
     * @return
     */
    List<Map> queryChildDept(DeptQuery query);

    /**
     * 根据父id查询最大编码
     * @param parentId
     * @return
     */
    String queryMaxCode(int parentId);

    /**
     * 根据部门id查询编码
     * @param id
     * @return
     */
    String queryCodeById(int id);

    /**
     * 查询指定部让下子部门的数量
     * @param id
     * @return
     */
    int queryChildCount(Serializable id);


    /**
     * 修改状态
     * @param id
     * @param status  0禁用 1 启用
     * @return
     */
    int updateStatus(@Param("id") int id,@Param("status") int status);
}
